PXB-3643 [8.0] : Improve xbcloud delete to support Hierarchical Namespaces - #1726
Merged
Conversation
Contributor
Author
Contributor
Author
|
8.4 version: #1727 |
jakub-nowakowski-percona
approved these changes
Jan 27, 2026
https://perconadev.atlassian.net/browse/PXB-3643 Problem: -------- On Azure platform, buckets with HNS (Hierarchical Namespaces) enabled, xbcloud delete operation failed. Analysis: --------- When HNS is enabled on Azure, it is no longer a flatnamespace, meanining just deleting objects as files is not sufficient. Deleting a dir before deleting all the files in directory caused delete failure. Refactor xbcloud delete to work with HNS-style directories by listing files and directories separately. Introduce a partitioned listing API with a default implementation and add Azure-specific directory detection using ResourceType. Refactor Azure listing parsing logic, and introduce a separate listin logic only for delete. With this new listing logic, xbcloud will receive information about files and directories. xbcloud will delete all files first and then delete the directories.
satya-bodapati
added a commit
to satya-bodapati/percona-xtrabackup
that referenced
this pull request
Jun 23, 2026
…cloud migration table
Rewrite cloud_direct.md to reflect the new provider-explicit option
model:
- Add a "Bucket and prefix syntax" section explaining the new
BUCKET/PREFIX form across all four backends, with HNS-safety
notes (leading/trailing-slash strip; never PUT a key ending in '/').
- Refresh the Backup / Download / Delete examples to use
--cloud-s3-bucket=BUCKET/PREFIX instead of the dropped generic
--cloud-bucket.
- Reorganize the CLI catalog into Common / S3 / GCS / Azure / Swift
subsections. All 17 --cloud-swift-* options + 6 parity options
(--cloud-verbose, --cloud-s3-api-version, --cloud-azure-development-
storage, --cloud-curl-retriable-errors, --cloud-http-retriable-
errors, --cloud-header) documented.
- New "xbcloud -> xtrabackup option migration" section -- a series of
1:1 mapping tables (S3, GCS, Azure, Swift, common HTTP/retry,
multipart) so existing xbcloud scripts can be ported mechanically.
- "Removed options" subsection explains why --cloud-bucket (generic),
--md5 (deferred to per-file SHA-256, task percona#54), --cloud-multipart-
upload, and --cloud-multipart-memory-budget are absent.
- Limitations updated:
* sparse-files note replaced -- manifest-driven sparse_map now
lands by default (PXB-3754 work integrated earlier in this
branch).
* Added HNS --delete note referencing PXB-3643 / PR percona#1726.
* Added per-file SHA-256 verification deferral note pointing
at task percona#54.
https://perconadev.atlassian.net/browse/PXB-3671
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://perconadev.atlassian.net/browse/PXB-3643
Problem:
On Azure platform, buckets with HNS (Hierarchical Namespaces) enabled, xbcloud delete operation failed.
Analysis:
When HNS is enabled on Azure, it is no longer a flatnamespace, meanining just deleting objects as files is not sufficient. Deleting a dir before deleting all the files in directory caused delete failure.
Refactor xbcloud delete to work with HNS-style directories by listing files and directories separately. Introduce a partitioned listing API with a default implementation and add Azure-specific directory detection using ResourceType. Refactor Azure listing parsing logic, and introduce a separate listin logic only for delete.
With this new listing logic, xbcloud will receive information about files and directories. xbcloud will delete all files first and then delete the directories.